Model Checking Real-time Java
نویسندگان
چکیده
The main challenges in model checking real-time Java programs are scalability and compliance with the Real-time Specification for Java (RTSJ) semantics. A model checker for RTSJ programs has to support the notion of thread periods and priority-preemptive scheduling as well as understand the region-based memory model introduced by the specification. We present the RJ model checker for multi-threaded RTSJ programs, which is based on Java PathFinder. RJ explores execution paths that correspond to priority-preemptive schedules and involve valid sequences of thread releases with respect to their periods and priorities. The other novel features of our work are an abstraction of time based on thread periods, and a model of RTSJ memory regions and API. We evaluated our approach on real-time benchmark that models an aircraft collision detection algorithm implemented in real-time Java. Thanks to our precise account of RTSJ semantics, RJ was able to verify the application and reported no spurious errors.
منابع مشابه
Exploring Model-Based Development for the Verification of Real-Time Java Code
Many safetyand security-critical systems are real-time systems and, as a result, tools and techniques for verifying real-time systems are extremely important. Simulation and testing such systems can be exceedingly time-consuming and these techniques provide only probabilistic measures of correctness. There are a number of model-checking tools for real-time systems. However, they provide formal ...
متن کاملSymbolic execution and timed automata model checking for timing analysis of Java real-time systems
This paper presents SYMRT, a tool based on a combination of symbolic execution and real-time model checking for timing analysis of Java systems. Symbolic execution is used for the generation of a safe and tight timing model of the analyzed system capturing the feasible execution paths. The model is combined with suitable execution environment models capturing the timing behavior of the target h...
متن کاملModel Checking Real Time Java Using Java PathFinder
The Real Time Specification for Java (RTSJ) is an augmentation of Java for real time applications of various degrees of hardness. The central features of RTSJ are real time threads; user defined schedulers; asynchronous events, handlers, and control transfers; a priority inheritance based default scheduler; non-heap memory areas such as immortal and scoped, and non-heap real time threads whose ...
متن کاملAddressing State Explosion in Discovery of Concurrency Errors in Component Java Code
Current approaches to the development of reliable software systems include decomposition into components, attaching formal behavior specification to the components, and verification of component behavior via model checking. The main obstacle preventing model checking real-life software components is state explosion, which occurs especially for highly parallel components. In addition, since a ty...
متن کاملExecution-Based Model Checking of Interrupt-Based Systems
Execution-based model checking (EMC) is a verification technique based on executing a multi-threaded/multiprocess program repeatedly in a systematic manner in order to explore the different interleavings of the program. This is in contrast to traditional model checking, where a model of a system is analyzed. Several execution-based model-checking tools exist at this point, such as for example V...
متن کامل